查看原文
其他

Kylin 4 云上实践探索 —— 模版部署

徐腾挺 apachekylin 2022-05-05

摘要

Apache Kylin 社区今年发布了全新架构的 Kylin 4.0,致力于打造高性能、低成本的 OLAP 引Kylin 4.0 的架构支持存储和计算分离,这使得 Kylin 用户可以采取更加灵活、计算资源弹性伸缩的云上部署方式来运行 Kylin 4.0Kylin 4 的新架构为云上部署带来哪些优势呢?如何在云上更好、更简单地用好 Kylin 呢?以下是我们对 Kylin 4 的一些总结,相关背景请参考 :有赞出品|升级 Kylin 4 最强攻略!

  1. 云友好:可以脱离 Hadoop 部署,计算资源的伸缩可以做到更加弹性。
  2. 更高资源利用率:得益于 Kylin 4 的构建和查询引擎的全面升级, Kylin 4 资源利用率更高更稳定。
  3. 支持存算分离:使用 S3 作为存储对象,理论上实现无限的存储空间。
  4. 更简单的架构:去除了对 Hadoop 的依赖,Kylin 技术的学习成本和集群的维护难度大大降低。

本篇文章将带来 Kylin 4 在云上最佳部署方式的探讨,并从以下角度展开分析,希望能为社区用户提供一些参考:
  1. Kylin 4 的云上部署方式有哪些?
  2. Kylin 4 的云上最佳部署方式应该是什么样?

Kylin 4 的云上部署方式

考虑到 AWS 是目前主流的公有云服务提供商,这里使用 AWS 作为例子展开讨论;目前,提到 Kylin 在 AWS的部署方式,主要有两种方式。一种是 Kylin on EMR(on Hadoop),即在 AWS 提供的 EMR(Hadoop) 集群部署 Kylin;另一种则是 Kylin on EC2(on Standalone),基于 AWS EC2 和 AWS Cloudformation 模板,部署 Kylin 依赖的 Spark Standalone 服务和 Zookeeper 服务,以及 Kylin 本身。

为了突出以上两种部署方式的最大区别,即 Kylin 是否依赖一个 Hadoop 集群,这里分别以 on Hadoop 和 on Standalone 指代以上两者。

以下将通过 5 个方面探讨两种部署方式的优缺点:
  • 成本/TCO
  • 架构
  • 存算分离
  • 部署方式
  • 监控

01

成本/TCO


02

架构


03

存算分离


04

部署方式

AWS 的 Cloudformation Template 服务可以让用户自定义云上服务部署,具有很大的灵活度,同时支持 EMR 和 EC2,但是需要一定的学习成本。


05

监控


06

总结


Kylin 4 的云上部署方式:Cloudformation

通过以上对比可以看到,在云上,on Standalone 的部署方式相比 on Hadoop 具有独特的优势,不仅能够较好地节约云上成本, 减轻了学习和维护的负担,而且能够从容地扩缩容,并且依托 Local Cache + Soft Affinity 调度机制,也能拥有和 on HDFS 相似的查询性能。

基于此,我们开发并且贡献了 Kylin on Standalone 的部署模板,基于 AWS 所提供的 Cloudformation Template,实现仅需简单的配置,即可完成所需集群的部署。

相关代码仓库如下:
https://github.com/Kyligence/kylin-tpch/tree/deploy-kylin-on-aws
具体配置请参考 README 部分。

以上部署模板具有如下优点:
  • 使用简便,且具有一定的通用性,支持自定义化。用户还可以根据自己需要,进行相关服务模板的替换。
  • 多次测试,稳定可靠。当前该代码脚本通过测试运行良好,做到开箱即用 Kylin 4。

集群示意图:

整体架构图:

基于 Cloudformation 的部署方式的不足和未来方向


不足:
  1. 部署前有一定的前置步骤需要完成
  2. 如果用户需要进一步扩展 AWS 云上服务的话,需要了解和学习 Cloudformation Template
未来方向:
  1. 封装更完备,减少前置步骤
  2. 集成集群监控服务
  3. 集成本地数据缓存
  4. 支持快速扩缩容机器节点
  5. 升级到 Spark 3.2

以上的讨论和开发工作还有很多需要改进的地方,欢迎社区用户下载试用,欢迎感兴趣的同学有不同的建议一起交流学习,也欢迎大家一起参与开源贡献。

点击“阅读原文”了解更多
↓↓↓

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存